package com.cs.paoyer.common.exception;



/**
 * Una clase que implemente esta interfaz contendr� un conjunto de excepciones que
 * les son de utilidad a una aplicaci�n para saber que ocurri� en caso de una falla.
 * Las clases que implementen esta interfaz ser�n las encargadas de alimentar
 *  la informaci�n de los errores que pueden suceder en el modulo.
 * Una instancia de la clase que implemete esta interfaz sera creada por la clase
 * ModuleExceptionFactory, qui�n a su vez es llamada por una instancia
 * de las clase UserException o SystemException para mostrar un error determinado.
 *
 * @version 0.9.
 */
public interface ModuleExceptionInterface {

  /**
   * Indica que es una Excepcion de Usuario
   * Las Excepciones de Usuario estan definidas en Centenas
   */
  public static final int USER_EXCEPTION = 100;

  /**
   * Indica que es una Excepcion de Sistema
   * Las Excepciones de Sistema estan definidas en Unidades de Mil
   */
  public static final int SYSTEM_EXCEPTION = 1000;


  /**
   * Retorna un objeto ExceptionVO que contienen informaci�n detallada
   * de un error que puede pasar en el m�dulo, seg�n el tipo de Excepcion
   * pasado en el tipo.
   * @param messageId int Identificador de la Excepcion definida para el modulo.
   * @return ExceptionVO
   */
  public ExceptionVO getExceptionVO(int messageId)throws SystemException;


  /**
   * Obtiene un objeto <code>ModuleVO</code> que contiene el nombre del modulo
   * y la clase que maneja las excepciones.
   *
   * @return Objeto <code>ModuleVO</code> que contiene el nombre del modulo
   * y la clase que maneja las excepciones.
   */
  public ModuleVO getModuleVO();


}
